package com.wen.api.sev;

import com.sun.jersey.spi.resource.Singleton;
import com.wen.api.entity.User;
import com.wen.api.intf.IUserService;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;

/**
 * Annotation放在接口类还是实现类
 * 两种方式是完全等价的。
 * 在一般应用中，我们建议将annotation放到服务实现类，这样annotation和java实现代码位置更接近，
 * 更便于开发和维护。另外更重要的是，我们一般倾向于避免对接口的污染，保持接口的纯净性和广泛适用性
 *
 * Created by teddy on 2017/9/19.
 */

@Path("/users")
public class UserService implements IUserService {

    @Override
    @GET
    @Path("/{id:\\d+}")    //:后为正则表达式
    @Consumes  //可指定处理请求的提交内容类型（Content-Type），例如application/json, text/html;
    @Produces({MediaType.APPLICATION_JSON}) //定义响应媒体类型
    public User getUser(@PathParam("id") int id, @QueryParam("name") String name) {
        User user = new User();
        user.setId(id);
        user.setName(name);
        return user;
    }

    @GET
    @Path("oly")
    public String oly() {
        return "oly";
    }
}
